﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using Public;

namespace QLNhanKhau
{
    public partial class UCUpdateSHK : UserControl
    {
        public UCUpdateSHK()
        {
            InitializeComponent();
        }

        private void UCUpdateSHK_Load(object sender, EventArgs e)
        {
            dgvSHK.DataSource = SoHoKhauBLL.LoadSoHoKhau();
            //dgvSHK.Columns[0].HeaderText = "Mã sổ hộ khẩu";
            dgvSHK.Columns[1].HeaderText = "Số";
            dgvSHK.Columns[2].HeaderText = "Số nhà";
            dgvSHK.Columns[3].HeaderText = "Đường";
            dgvSHK.Columns[4].HeaderText = "Khu Phố/Ấp";
            dgvSHK.Columns[5].HeaderText = "Người cấp";
            //dgvSHK.Columns[6].HeaderText = "Cán bộ đăng kí";
            dgvSHK.Columns[7].HeaderText = "Chức vụ";
            dgvSHK.Columns[8].HeaderText = "Ngày cấp";
            dgvSHK.Columns[0].Visible = false;
            //dgvSHK.Columns[1].Visible = false;
            //dgvSHK.Columns[2].Visible = false;
            //dgvSHK.Columns[3].Visible = false;
            //dgvSHK.Columns[4].Visible = false;
            //dgvSHK.Columns[5].Visible = false;
            dgvSHK.Columns[6].Visible = false;
            //dgvSHK.Columns[7].Visible = false;
            //dgvSHK.Columns[8].Visible = false; 
            dgvSHK.Columns[9].Visible = false;
            dgvSHK.Columns[10].Visible = false;
            dgvSHK.Columns[11].Visible = false;
            dgvSHK.Columns[12].Visible = false;
            dgvSHK.Columns[13].Visible = false;
            dgvSHK.Columns[14].Visible = false;
            dgvSHK.Columns[15].Visible = false;
            dgvSHK.Columns[16].Visible = false;
            dgvSHK.Columns[17].Visible = false;
            

            cmbNguoiCap.DataSource = NguoiDungBLL.LoadNguoiCap();
            cmbNguoiCap.DisplayMember = "HoTen";
            cmbNguoiCap.ValueMember = "MaND";

        }
         int SoHoKhauKhau;
        private void dgvSHK_SelectionChanged(object sender, EventArgs e)
        {
            DataGridViewCell cell = null;

            foreach (DataGridViewCell select in dgvSHK.SelectedCells)
            {
                cell = select;
            }
            if (cell != null)
            {
                DataGridViewRow row = cell.OwningRow;
                SoHoKhauKhau = (int)row.Cells[0].Value;
                //txtSoSHK.Text = row.Cells[1].Value.ToString();
                txtSoNha.Text = row.Cells[2].Value.ToString();
                txtDuong.Text = row.Cells[3].Value.ToString();
                txtAp.Text = row.Cells[4].Value.ToString();
                txtCanBoDangKi.Text=NguoiDungBLL.LoadNguoiDungByMaND((int)row.Cells[6].Value).HoTen;
                dateNgayCap.Value=(DateTime)row.Cells[8].Value;
                cmbNguoiCap.SelectedValue=(int)row.Cells[5].Value;
                txtChucVuNguoiCap.Text = ChucVuBLL.LoadChucVuByMaCV(NguoiDungBLL.LoadNguoiDungByMaND((int)row.Cells[5].Value).MaCV).TenChucVu;
                List<NhanKhauPublic> list_nk = NhanKhauBLL.LoadNhanKhauByMaSHK((int)row.Cells[1].Value);
                txtChuHo.Text = list_nk.Find(item => item.MaQH == 1).HoTen;

            }
            
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            if ( txtSoNha.Text == "" || txtDuong.Text == "" || txtAp.Text == "")
            { 
                MessageBox.Show("Vui lòng nhập thông tin","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
                return;
            }

            int ChucVu=NguoiDungBLL.LoadNguoiDungByMaND((int)cmbNguoiCap.SelectedValue).MaCV;
            
            SoHoKhauBLL.UpdateSHK(txtSoNha.Text, int.Parse(txtAp.Text), txtDuong.Text, (int)cmbNguoiCap.SelectedValue,SoHoKhauKhau,ChucVu);
            MessageBox.Show("Cập nhật thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            UCUpdateSHK_Load(sender, e);
        }

        private void btnTim_Click(object sender, EventArgs e)
        {
            if (txtSoSHK.Text == "")
            {
                MessageBox.Show("Nhập số sổ hộ khẩu cần tìm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtSoSHK.Focus();
                return;
                
            }
            int SoSHK = int.Parse(txtSoSHK.Text);
            List<SoHoKhauPublic> list_shk = SoHoKhauBLL.LoadListSoHoKhauBySoSHK(SoSHK);
            if (list_shk == null)
            {
                txtDuong.Text = txtAp.Text = txtSoNha.Text = txtChuHo.Text = "";
                dgvSHK.DataSource = null;
                
                MessageBox.Show("Không tìm thấy!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtSoSHK.ResetText();
                txtSoSHK.Focus();
                return;
            }
            else
            {
                //txtChuHo.Text = list_nk.Find(item => item.MaQH == 1).HoTen;
                
                //txtChuHo.Text = list_shk.Find(item => item.MaQH == 1).HoTen;
                dgvSHK.DataSource = list_shk;
                //dgvSHK.Columns[0].HeaderText = "Mã sổ hộ khẩu";
                
                
            }
        }

        private void txtSoSHK_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) || txtSoSHK.Text.Length > 7 && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
            if (e.KeyChar == 13)
                btnTim_Click(sender, e);
        }

        private void txtSoNha_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtSoNha.Text.Length > 5 && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        private void txtDuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(txtDuong.Text.Length > 49 && !Char.IsControl(e.KeyChar))
                e.Handled=true;
        }

        private void txtAp_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) || txtAp.Text.Length > 1 && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            List<NhanKhauPublic> list_nk= NhanKhauBLL.LoadNhanKhauByMaSHK(SoHoKhauKhau);
            if (list_nk.Count > 0)
            {
                MessageBox.Show("Có nhân khẩu trong sổ hộ khẩu này", "Không thể xóa", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            SoHoKhauBLL.DeleteSHK(SoHoKhauKhau);
        }
    }
}
